<?php
namespace PsiFramework\Applications\Bibliotheque\Classes\Model;

import("Classes.Model.Object");
import("Applications.Bibliotheque.Classes.Model.Contribution");
import("Applications.Bibliotheque.Classes.Model.Type");
import("Applications.Bibliotheque.Classes.Model.Genre");

use \PsiFramework\Classes\Model\Object;
use \PsiFramework\Applications\Bibliotheque\Classes\Model\Contribution;
use \PsiFramework\Applications\Bibliotheque\Classes\Model\Type;
use \PsiFramework\Applications\Bibliotheque\Classes\Model\Genre;

/**
 * Bibliotheque
 * Gestion de ma bibliothèque
 *
 * @author Rémi San
 * @version beta
 */

/**
 * Classe d'une Oeuvre
 *
 * @package Model
 */
class Oeuvre extends Object
{

    protected /*int*/                 $_id ;
    protected /*string*/              $_titre;
    protected /*string*/              $_annee;
    protected /*string*/              $_notes;
    protected /*string*/              $_pret;
    protected /*Contribution[]*/      $_contributions;
    protected /*Type*/                $_type;
    protected /*Genre*/               $_genre;

    /**
     * Constructeur
     *
     * @param  int             $id             L'identifiant de l'Oeuvre
     * @param  string          $titre          Le titre de l'Oeuvre
     * @param  string          $annee          L'année de l'Oeuvre
     * @param  string          $notes          Les notes sur l'Oeuvre
     * @param  string          $pret           Qui détient l'Oeuvre ?
     * @param  Contribution[]  $contributions  Les contributions de l'Oeuvre
     * @param  Type            $type           Le type de l'Oeuvre
     * @param  Genre           $genre          Le genre de l'Oeuvre
     */
    public function __construct(
        /*int*/ $id=null,
        /*string*/ $titre=null,
        /*string*/ $annee=null,
        /*string*/ $notes=null,
        /*string*/ $pret=null,
        /*Contribution[]*/ $contributions=array(),
        /*Type*/ $type=null,
        /*Genre*/ $genre=null
    )
    {
        $this->_id = $id ;
        $this->_titre = $titre ;
        $this->_annee = $annee;
        $this->_notes = $notes ;
        $this->_pret = $pret ;
        $this->_contributions = $contributions ;
        $this->_type = $type ;
        $this->_genre = $genre ;
    }

    public function getId()
    {
        return $this->_id ;
    }

    public function setId($id)
    {
        $this->_id = $id ;
    }

    public function getTitre()
    {
        return $this->_titre ;
    }

    public function setTitre($titre)
    {
        $this->_titre = $titre ;
    }

    public function getAnnee()
    {
        return $this->_annee ;
    }

    public function setAnnee($annee)
    {
        $this->_annee = $annee ;
    }

    public function getNotes()
    {
        return $this->_notes ;
    }

    public function setNotes($notes)
    {
        $this->_notes = $notes ;
    }

    public function getPret()
    {
        return $this->_pret ;
    }

    public function setPret($pret)
    {
        $this->_pret = $pret ;
    }

    public function getContributions()
    {
        return $this->_contributions ;
    }

    public function setContributions($contributions)
    {
        $this->_contributions = $contributions ;
    }

    public function getType()
    {
        return $this->_type ;
    }

    public function setType($type)
    {
        $this->_type = $type ;
    }

    public function getGenre()
    {
        return $this->_genre ;
    }

    public function setGenre($genre)
    {
        $this->_genre = $genre ;
    }

    public function toString()
    {
        return $this->_titre ;
    }
}
